package com.atguigu.interpreter;

import java.util.HashMap;

/**
 * @program: design-patterns
 * @author: yangshen
 * @description: 加法解释（析）器
 * @create: 2022-03-13 13:31
 **/
public class AddExpression extends SymbolExpression{

    /**
     * 构建左和右的表达式
     *
     * @param left  左表达式
     * @param right 右表达式
     */
    public AddExpression(Expression left, Expression right) {
        super(left, right);
    }

    /**
     * 处理相加
     * @param var hashMap {a=10, b=20}
     * @return a+b的结果
     */
    @Override
    public int interpreter(HashMap<String, Integer> var) {
        //super.left.interpreter(var) : 返回left 表达式对应的值 a=10
        //super.left.interpreter(var) : 返回right 表达式对应的值 b=20
        return super.left.interpreter(var) + super.right.interpreter(var);
    }
}
